package actual;

import java.io.*;
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: fzykd
 * Date: 2022-10-27
 * Time: 20:18
 */

//案例二 完成文件的复制  指定两个路径 一个是原路径 一个目标路径
//打开源路径 读取里面的内容 并写道目标文件当中
public class Demo2 {
    public static void main(String[] args) {
        //输入两个路径
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要拷贝的源路径: ");
        String src = scanner.next();
        System.out.println("请输入要拷贝的目标路径: ");
        String dest = scanner.next();

        File srcFile = new File(src);
        if (!srcFile.isFile()){
            System.out.println("输入的原路径不正确!");
            return;
        }

        //写文件会自动创建不存在的文件
        //2.读取源文件，拷贝到目标文件当中  照片等其他文件也是可以拷贝的
        try (InputStream inputStream = new FileInputStream(src)){
            try(OutputStream outputStream = new FileOutputStream(dest)){
                //把inputStream 中的数据读出来 写到 OutputStream中
                //这都是按照字节 来读和写的 文件之间整个操作
                byte[] buffer = new byte[1024];
                while (true){
                    int len = inputStream.read(buffer);
                    if (len == -1){
                        break;
                    }
                    //写的时候不能将整个buffer都写入 可能之后部分buffer是有效数据
                    //这里就使用到了 包含三个参数的write
                    outputStream.write(buffer,0,len);
                    System.out.println("拷贝成功!");
                }
            }
        }catch (IOException e){
            e.printStackTrace();
        }

    }
}
